import {Sequelize} from "sequelize"

//先实例化数据库在注册模型这个优先于模型之前

// 实例化 Sequelize 对象，用于与数据库进行交互
// 这里使用 SQLite 作为数据库，数据库文件存储在项目的根目录下
export const sequelize = new Sequelize({
    dialect: 'sqlite', // 指定数据库类型为 SQLite
    storage: './db.db'  // 指定数据库文件存储路径
});

// 导出一个异步函数 sync，用于同步数据库模型并批量创建数据
export const sync = async () => {
    // 动态导入 Blog 模型，确保在调用此函数之前模型已经被定义
    const { Blog } = await import('../model/Blog.js'); // 实例化 Blog 模型

    // 使用 sequelize.sync 方法同步所有模型到数据库
    // { force: true } 参数表示如果模型与数据库结构不匹配，则先删除表再创建新表
    // 注意：这将删除所有现有数据
    await sequelize.sync({ force: true });

    // 定义一个数组，包含要批量创建的博客文章数据
    let arr = [
        {
            title:'嘻嘻哈哈',
            author:'zzaisx'
        },
        {
            title:'高高兴兴',
            author:'zzaisx'
        },
        {
            title:'嘻嘻哈哈',
            author:'zzaisx'
        },
        {
            title:'嘻嘻哈哈',
            author:'zzaisx'
        },
        {
            title:'嘻嘻哈哈',
            author:'zzaisx'
        },
        // ... 更多文章数据
    ];

    // 使用 Blog 模型的 bulkCreate 方法批量创建文章记录
    // 这个方法接受一个对象数组，每个对象代表一条要创建的记录
    Blog.bulkCreate(arr);
};








